<?php
class AdministrativosController extends AppController{
    
    var $name='Administrativos';
    var $helpers = array('Html', 'Form','Js');
    var $uses = array('Administrativo','Usuario','Tipousuario');
    var $layout = 'principal';
    public $components= array('Aexcel', 'Session');
    
    function beforeFilter(){
    
    $this->checksession();
    }

    function index(){
		$conv_excel = new AexcelComponent();
		
		$this->paginate = array('Administrativo' => array('limit' => 30));
	    $this->set('administrativos',$this->paginate('Administrativo'));
    }
    function admintrativoexcel(){
	    $conv_excel = new AexcelComponent();
        $cabecera = array("Apellido Paterno", "Apellido Materno", "Nombre");
        $all=$this->Administrativo->find('all',array('fields'=>array('Administrativo.ap_paterno','Administrativo.ap_materno', 'Administrativo.nombre')));
        $conv_excel->columnas($cabecera, $all);    
    
    }
    function insertar(){
     if(!empty($this->data)):
                $this->Administrativo->create();
   				$this->request->data['Administrativo']['fecha_nac']=$this->fechamysql($this->data['Administrativo']['fecha_nac']);

				//debug($this->data);exit;
				if($this->Administrativo->save($this->data))
				{
				
				$user_id=$this->Session->read('usuario_id');
				$bitacoradescrip='Inserto un nuevo administrativo';
				$this->insertbitacora($user_id,$bitacoradescrip);

					
					$this->Session->setFlash('Se Registro exitosamente!');
					$this->redirect(array('action'=>'index'),null,true);
					}
					else
					{
						$this->Session->setFlash('No se pudo registrar!!!');
						}
				
			
     endif;
     $tipousuario = $this->Tipousuario->find('list',array('fields'=>'Tipousuario.nombre'));
		$this->set(compact('tipousuario'));	   
    }
    function asignacion($id=null){
    $this->Administrativo->id=$id;
			if(!$id)
				{
				
				$this->Session->setFlash('No existe tal motivo');
				$this->redirect(array('action'=>'index'),null,true);
				
				}
				
			
					
					else
					{
					$this->data = $this->Administrativo->read(); //find(array('id' => $id));
					 if($this->data['Administrativo']['ci']!=0 and $this->data['Administrativo']['fecha_nac'] != '0000-00-00'){
                   $paterno=preg_split('//', $this->data['Administrativo']['ap_paterno'], -1, PREG_SPLIT_NO_EMPTY);
					$paterno=strtoupper($paterno[0]);
					$materno=preg_split('//', $this->data['Administrativo']['ap_materno'], -1, PREG_SPLIT_NO_EMPTY);
					$materno=strtoupper($materno[0]);
					$nombre=preg_split('//', $this->data['Administrativo']['nombre'], -1, PREG_SPLIT_NO_EMPTY);
					$nombre=strtoupper($nombre[0]);
					$ano=split('-',$this->data['Administrativo']['fecha_nac']);
					$fecha=$ano[2].$ano[1].$ano[0];
					$this->request->data['Usuario']['usuario']=$paterno.$materno.$nombre.$fecha;
					$this->request->data['Usuario']['contrasena']=sha1($this->data['Administrativo']['ci']);
					$this->request->data['Usuario']['tipousuario_id']=$this->data['Administrativo']['tipousuario_id'];
					$myusuario=$this->data['Usuario']['usuario'];
					//debug($myusuario);exit;
					if($this->Usuario->save($this->data))
					{
							
							$user_id=$this->Session->read('usuario_id');
							$bitacoradescrip='Asigno password de administrativo';
							$this->insertbitacora($user_id,$bitacoradescrip);
							$this->Session->setFlash('La Creacion del Usuario Fue exitosa');
							$user=$this->Usuario->find('first',array('conditions'=>array('Usuario.usuario'=>$myusuario)));
							//debug($user);exit;
							$user_id=$user['Usuario']['id'];

							$misdatos=$this->Administrativo->find('first', array('conditions'=>array('Administrativo.id'=>$id)));


							$this->Administrativo->id=$misdatos['Administrativo']['id'];
							$this->data = $this->Administrativo->read();
							$this->request->data['Administrativo']['usuario_id']=$user_id; 
//							debug($this->data);exit;

							$this->Administrativo->save($this->data);
							//							debug($misdatos);exit;
							$this->redirect(array('action'=>'mostrarusuario/'.$misdatos['Administrativo']['id']),null,true);
					}
				else
				{
							$this->Session->setFlash('no se pudo modificar!!');
						}  
                    }else{
                        $this->Session->setFlash('Falta registrar el CI y/o fecha de nacimiento ');
                        $this->redirect(array('action'=>'editar', $id));
                    }
                    
				}    }
				function mostrarusuario($id=null){
				
				
				$misdatos=$this->Administrativo->find('first', array('conditions'=>array('Administrativo.id'=>$id)));
				
				$paterno=preg_split('//', $misdatos['Administrativo']['ap_paterno'], -1, PREG_SPLIT_NO_EMPTY);
					$paterno=strtoupper($paterno[0]);
					$materno=preg_split('//', $misdatos['Administrativo']['ap_materno'], -1, PREG_SPLIT_NO_EMPTY);
					$materno=strtoupper($materno[0]);
					$nombre=preg_split('//', $misdatos['Administrativo']['nombre'], -1, PREG_SPLIT_NO_EMPTY);
					$nombre=strtoupper($nombre[0]);
					$ano=split('-',$misdatos['Administrativo']['fecha_nac']);
					$fecha=$ano[2].$ano[1].$ano[0];
				
				//debug($fecha);exit;
				$usuario= $paterno.$materno.$nombre.$fecha;
				$password=$misdatos['Administrativo']['ci'];
				$this->set(compact('usuario','password'));	   
				
				}
    function editar($id=null)
	{
		$this->Administrativo->id=$id;
			if(!$id)
				{
				$this->Session->setFlash('No existe tal motivo');
				$this->redirect(array('action'=>'index'),null,true);
				}
				if(empty($this->data))
				{
					$this->data = $this->Administrativo->read(); //find(array('id' => $id));
				}
					else
					{
					//debug($this->data);exit;
						if($this->Administrativo->save($this->data))
						{
							$user_id=$this->Session->read('usuario_id');
							$bitacoradescrip='Cambio datos de un administrativo';
							$this->insertbitacora($user_id,$bitacoradescrip);
							$this->Session->setFlash('Los datos fueron modificados');
							$this->redirect(array('action'=>'index'),null,true);
						}
						else
						{
							$this->Session->setFlash('no se pudo modificar!!');
						}
				}
	$tipousuario = $this->Tipousuario->find('list',array('fields'=>'Tipousuario.nombre'));
		$this->set(compact('tipousuario'));	   				
	}
    function delete($id = null) {
   			if (!$id) {
			$this->Session->setFlash('id Invalida para reclamo');
			$this->redirect(array('action'=>'index'), null, true);
			}
			if ($this->Administrativo->delete($id)) {
			$this->Session->setFlash('El Administrativo '.$id.' fue borrado');
			$this->redirect(array('action'=>'index'), null, true);
			}
	}
	function cambiarpassword($id=null){

	$this->Administrativo->id=$id;
			if(!$id)
				{
				$this->Session->setFlash('No existe tal Usuario');
				$this->redirect(array('action'=>'index'),null,true);
				}
				if(empty($this->data))
				{
					$this->data = $this->Administrativo->read(); //find(array('id' => $id));
//					debug($this->data);exit;
					if(empty($this->data['Usuario']['id'])):
						$this->Session->setFlash('No se puede cambiar el password a este usuario porque aun no se le asigno uno');
						$this->redirect(array('action'=>'index'),null,true);
					endif;
				}
					else
					{
					$nuevopass=$this->data['Usuario']['contrasena'];
					$this->Usuario->id=$this->data['Usuario']['id'];
					$this->data = $this->Usuario->read();
				
					$this->request->data['Usuario']['contrasena']=sha1($nuevopass);
						if($this->Usuario->save($this->data))
						{
							$this->Session->setFlash('Se cambio Exitosamente');
								$user_id=$this->Session->read('usuario_id');
								$bitacoradescrip='Cambio password de un administrativo';
								$this->insertbitacora($user_id,$bitacoradescrip);
								$this->redirect(array('action'=>'index'),null,true);
						}
						else
						{
							$this->Session->setFlash('no se pudo modificar!!');
						}
			}	
	$this->request->data['Usuario']['contrasena']='';
	$administrativo=$this->Administrativo->find('first',array('conditions'=>array('Administrativo.usuario_id'=>$this->data['Usuario']['id'])));
	$this->set(compact('administrativo'));	   
	
	}
	    function imprimiradministrativos() {
        
        $this->layout = 'ajax';
        $all = $this->Administrativo->find('all');
		$user_id=$this->Session->read('usuario_id');
		$bitacoradescrip='Imprimio lista administrativos';
		$this->insertbitacora($user_id,$bitacoradescrip);
        $this->set('administrativos', $all);
    }
	
	function buscar(){
    $data=$this->data['dato'];
    
    $options=array(
    'OR'=>array(
    'Administrativo.ap_paterno LIKE' =>'%'.$data.'%',
    'Administrativo.ap_materno LIKE' =>'%'.$data.'%',
    'Administrativo.nombre LIKE' =>'%'.$data.'%',
    'Administrativo.ci LIKE' =>'%'.$data.'%'
    )
    );
    $result=$this->Administrativo->find('all',array('conditions'=>array($options)));
     $this->set('administrativos',$result);

    }
}
?>
